Business system architectures reflect technological conditions which evolved for business solutions. Database management systems evolved that optimized performance on hardware with limited main memory, where the slow disk I/O caused the main bottleneck. Disk access was optimized, for example, by minimizing the number of disk pages to be read into main memory when processing a query. Business software was built with a sequential processing paradigm. Data tables were fetched from the database, processed on a row-by-row basis, and pushed back to the database.
Technological database limitations have forced a separation of the data management solution into transactional and analytical processing. For example, online transaction processing (OLTP) systems can be highly normalized to data entry volume and to speed up inserts, updates, and deletes. This high degree of normalization can be disadvantageous when it comes to retrieving data—for example, when multiple tables may have to be joined. Slow data retrieval can severely impact performance of an OLTP system. Online application processing (OLAP) systems were developed to address the requirements of large enterprises to analyze data in a timely manner. OLAP systems can exploit specialized data structures designed to optimize read performance and provide quick processing of complex analytical data.
Massively Parallel Processing (MPP) systems coordinate multiple processing elements simultaneously to solve a problem. Such systems have led to the development of high-performance computer systems that perform complex scientific and commercial applications. However, iterative processes that are not often repeated, if at all, are not easily parallelized in a cost effective manner.